A communication network is a geographically distributed collection of nodes interconnected by communication links and segments for transporting communications (e.g., data) between communication units (end nodes), such as personal computers, certain telephones, personal digital assistants (PDAs), video units and the like. Many types of communication networks are available, with the types ranging from local area networks (LANs) to wide area networks (WANs). LANs typically connect nodes over dedicated private communications links located in the same general physical location, such as a building or campus. WANs, on the other hand, typically connect large numbers of geographically dispersed nodes over long-distance communications links, such as common carrier telephone lines. The Internet is an example of a WAN that connects networks throughout the world, providing global communication between nodes on various networks. The nodes typically communicate over the network by exchanging discrete frames or packets of data according to predefined protocols, such as the Transmission Control Protocol/Internet Protocol (TCP/IP). In this context, a protocol consists of a set of rules defining how the nodes interact with each other.
A communication network may comprise a series of intermediate nodes (e.g., routers) that are configured to carry communications through the network to the end nodes. Routers are often configured to “route” data, such as packets, between various nodes in the network. Routing is typically performed at layer-3 (L3), which is the network layer of the Open Systems Interconnection Reference Model (OSI-RM). Routers often maintain forwarding databases (FDBs), which are typically configured to hold routing information including L3 addresses and interface information that the router uses to determine where data (e.g., data packets) are to be forwarded in order to reach their destination. For example, a router may have a routing database containing one or more entries wherein each entry contains a L3 destination address of a destination node and interface information about an interface on the router through which the destination node may be reached. A data packet containing a destination address that matches a destination address of an entry in the routing table is forwarded by the router to the interface specified by the matching entry for transfer to the destination node.
A router may execute one or more routing protocols that enable the router to route packets and exchange routing information with other routers in the network. The routers often use this information to configure (e.g., compute) their FDBs. The routing protocols may include distance-vector protocols, such as the Routing Information Protocol (RIP), or link-state protocols, such as the Intermediate-System-to-Intermediate-System (IS-IS) protocol and the Open Shortest Path First (OSPF) protocol.
Routing information is typically exchanged between the routers in the form of advertisement messages. For example, nodes executing the IS-IS protocol exchange routing information using an advertisement message called a Link State Packet (LSP). Likewise, nodes executing the OSPF protocol exchange routing information using an advertisement message called a Link State Advertisement (LSA). An intermediate node that acquires an advertisement message may use information contained therein to update its FDB.
Communication networks are increasingly being used to transport many forms of information including, e.g., voice and video information. Information may be carried on a communication network using various technologies, such as Voice over IP (VoIP). VoIP refers to a group of technologies that may be used to transmit e.g., voice information over communication networks from a source (calling party) to a destination (called party). Such networks may include a plurality of agents that convert e.g., voice and/or video information from its traditional form to a form that is suitable for packet transmission. In other words, the agent encodes, compresses and encapsulates the information into a plurality of data packets that are suitable for being carried by the communication network. Examples of agents include IP telephones, VoIP network interfaces, certain private branch exchanges (PBXs), personal computers (PCs) running communication applications, certain personal digital assistants (PDAs), network devices providing voice gateway services and so on.
In certain communication networks, such as VoIP networks and IP networks, a session protocol may be employed to establish a VoIP session (connection) that supports a call between a calling party and a called party. An example of a session protocol that is commonly used is the well-known Session Initiation Protocol (SIP) which is described in J. Rosenberg et al., “SIP: Session Initiation Protocol,” Internet Engineering Task Force (IETF) Request For Comments (RFC) 3261. SIP operates at the application layer of the OSI-RM and is defined to establish and maintain sessions between endpoints (e.g., SIP-based telephones) in a communication network.
In accordance with SIP, endpoints are referred to as User Agents (UAs). When a UA comes on-line, it typically registers with a registration service, called a policy data point (PDP), using a SIP register command. The PDP maintains information about the UA which may include its location, how to reach it and authentication information associated with the UA that may be used to authenticate the UA. Typically, after a UA is registered, the UA is available to receive as well as initiate calls.
When a call is initiated by a calling party to a called party, a session is typically established between the calling and called parties' UAs to support the call. Establishing a session between the parties often involves (a) authenticating both parties and (b) successfully exchanging a sequence of messages between the parties in a predetermined manner. Authentication usually involves ensuring the parties have permission to establish a call in the network. The sequence of messages typically include an invite message issued by the calling party, an OK message issued by the called party followed by an acknowledgement (ACK) issued by the calling party. After the session is established, a channel may then be established, e.g., in accordance with the Real-time Transport Protocol (RTP) described in H. Schulzrinne et al., “RTP: A Transport Protocol for Real-Time Applications,” IETF RFC 3550, to carry traffic (e.g., voice information) between the parties.
Some communication networks, such as IP based communication networks, enable a location associated with a communication unit to be determined. Here, triangulation or other methods may be used e.g., by a server to determine the communication unit's location. The communication unit may then learn its location from the server using a version of the Dynamic Host Configuration Protocol (DHCP) that is extended to provide the location information. An example of an extension to the DHCP protocol that may be used to provide location information is described in J. Polk et al., “Dynamic Host Configuration Protocol Option for Coordinate-based Location Configuration Information,” IETF RFC 3825. In a typical arrangement, the communication unit requests its location information from the server using a DHCP request message and the server responds to the communication unit with a DHCP, response message that contains the communication unit's location.